Technical Field
Embodiments of the present disclosure relate generally to wireless networks, and more specifically to updating firmware of IOT (Internet of Things) devices.
Related Art
Internet of Things (IOT) is a network of physical devices or “things” with unique identifiers that are typically embedded within other systems that perform specific functions. IOT devices are designed to operate as wireless stations consistent with IEEE 802.11 family of standards (including IEEE 802.11a, 802.11b, 802.11g and 802.11n), and may communicate via an access point with each other as well as with other devices/systems on a network.
Typically IOT devices capture data with respect to a specific function, and wirelessly transmit that data to other IOT devices or to a central processing location for further processing. For example, IOT devices for sensing speed are typically embedded within speed cameras at traffic junctions. Such speed sensing IOT devices capture vehicle speeds and wirelessly transmit the captured speeds to a central processing location (e.g., a police station) for further processing.
In addition to capturing and sending data, IOT devices may also be set up to receive and process external inputs, and thus are capable of being externally monitored and controlled. For example, an IOT device monitoring a patient's heart rate may be set up to send diagnostics data to an external server upon an application on the external server requesting on-demand status information about the patient. As another example, an IOT device embedded in a thermostat system may be externally controlled by an application such that the temperature settings of the thermostat are set via inputs to the IOT device from the external application.
Firmware is a software program (i.e., set of instructions) that is designed to control the functions performed by the hardware portion of an IOT device. Firmware is typically stored either in internal non-volatile memory (e.g., ROM, EPROM), but may also be stored in an external (e.g., flash) memory, or in combination of both internal and external memory.
Updating firmware may be necessary to achieve any number of functions, as is well known in the art. For example, firmware updates to the software program help execute a new hardware function, fix a known problem, enable the hardware to work with a new operating system, bring the software in compliance with new software standards etc.
It is generally desirable that updates to an IOT device's firmware be performed in an efficient manner (e.g., by optimizing network bandwidth), as suited in the corresponding environments.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.